/*
Plugin Formato Miles v 1.0
Plugin para dar mormato de miles a las etiquetas input
*/

(function($){
	// varibles globales
	$.fn.tabla_control = function(opciones){
		var options = $.extend({
			idTabla : null,
			cabeseraFija : false,
			asignaNodos : false,
			nivel_inica : '',
			desplegarNodo : true,
			pieFijo : false,
			//control : '.expande',
		},opciones);


	$(window).resize(function() {
		//console.log("auto ajustar columna");
  		ajustarcolumnas();
	});

	clonar();
	ajustarcolumnas();



	function clonar(){
		if(opciones.cabeseraFija==true){
			var head_clon = $('#'+opciones.idTabla+' thead').clone();
			//  cambiar  id  a id+1
			$(head_clon).find('th').each(function() {
				$(this).find('label').removeAttr('name');
				var vlabe_id=$(this).find('label').attr('id');
				vlabe_id=vlabe_id+1;
				$(this).find('label').attr('id',vlabe_id);

				$(this).find(':input').removeAttr('name');
				var vinpit_id=$(this).find(':input').attr('id');
				vinpit_id=vinpit_id+1;
				$(this).find(':input').attr('id',vinpit_id);
            			});
			// Fin cambiar id a id+1

			var primera_fila=$('#'+opciones.idTabla+' tbody tr:first').clone();
			var tabla = ['<div class="cabeseraf">',
				'<table id="cabecera_fija"  class="table_principal_g" cellspacing="0" cellpadding="0" border="1"><thead>'+$(head_clon).html(),
				'</thead> </table> </div>'
				].join('');

			//$(tabla).appendTo('.exterior');
			divt=$('#'+opciones.idTabla+'').closest('div.exterior');
			$(tabla).appendTo(divt);
		}

		if(opciones.pieFijo==true){
			var foot_clon = $('#'+opciones.idTabla+' tfoot').clone();

			//  cambiar  id  a id+1
			 $(foot_clon).find('td').each(function() {
				$(this).find('label').removeAttr('name');
				var vflabe_id=$(this).find('label').attr('id');
				vflabe_id=vflabe_id+1;
				$(this).find('label').attr('id',vflabe_id);

				$(this).find(':input').removeAttr('name');
				var vfinpit_id=$(this).find(':input').attr('id');
				vfinpit_id=vfinpit_id+1;
				$(this).find(':input').attr('id',vfinpit_id);
            			});

			// Fin cambiar id a id+1

			var ultima_fila=$('#'+opciones.idTabla+' tbody tr:last').clone();
			var tabla2 = ['<div class="pief">',
				'<table id="pie_fija"  class="table_principal_g"  cellspacing="0" cellpadding="0" border="1"  ><tfoot>'+$(foot_clon).html(),
				'</tfoot> </table> </div>'
				].join('');

			//$(tabla2).appendTo('.exterior');
			divt2=$('#'+opciones.idTabla+'').closest('div.exterior');
			$(tabla).appendTo(divt2);
		}
	}


	function ajustarcolumnas(){
		var anchoTabla=$('#'+opciones.idTabla+'').width();

		if(opciones.cabeseraFija==true){
			
			var tb_cab=$('#'+opciones.idTabla+'').closest('.exterior').find('#cabecera_fija');
			//console.log($(tb_cab).html());
			
			$('#'+opciones.idTabla+' thead th').each(function(){
				var index = $(this).index();
				//var ancho = $(this).width();
				//console.log($(this).attr('width'));
				var ancho = $(this).attr('width');
				
						
				//$(tb_cab).find('th:eq('+index+')').width(ancho);
				$(tb_cab).find('th:eq('+index+')').attr('width',ancho);
								
			});
			//$('#cabecera_fija').width(anchoTabla);
			$(tb_cab).width(anchoTabla);
		}

		if(opciones.pieFijo==true){
			
			var tb_pie=$('#'+opciones.idTabla+'').closest('.exterior').find('#pie_fija');
			
			$('#'+opciones.idTabla+' tfoot td').each(function(){
				var index = $(this).index();
				var ancho = $(this).width();
				//$('#pie_fija tfoot td:eq('+index+')').width(ancho);
				$(tb_pie).find('td:eq('+index+')').width(ancho);
			});

			//$('#pie_fija').width(anchoTabla);
			$(tb_pie).width(anchoTabla);
		}
	}

	if(opciones.asignaNodos==true){
		 /* inical nivel*/
		if(opciones.nivel_inica!=''){
			var idfilini='_';
			var idfil='';
			var tm_idfilini=0;

			$('#'+opciones.idTabla+' tbody tr').each(function() {
				var vfil=$(this);
				idfil=$(this).attr('id');
				var clasesfilini=$(this).attr('class');

				if (typeof (clasesfilini) != "undefined" ) {
					var v_clasfila=clasesfilini.split(" ");

					if(v_clasfila.indexOf(opciones.nivel_inica)!=-1){
						idfilini=$(vfil).attr('id');
						tm_idfilini=idfilini.length;
						$(vfil).find('.expande').attr('name','expande');
						$(vfil).find('.expande').attr('src','../utilitarios/imagenes/pluss.png');
					}

					if((idfilini == idfil.substring(0,tm_idfilini)) && (v_clasfila.indexOf(opciones.nivel_inica)==-1)){
						if (opciones.desplegarNodo == true) {
							$(vfil).fadeIn();
						} else {
							$(vfil).fadeOut();
						}
					}
				}
            			});
		 }
		//'.expande'
		//var control = '.'+opciones.control;
		$('#'+opciones.idTabla+'').on('click','.expande', function() {
			var v_img=$(this).closest('img');
				vname=$(v_img).attr('name'),
				v_fila=$(this).closest('tr'),
				vid_fila=$(v_fila).attr('id'),
				tamano_vid=vid_fila.length,
				vindex_fila=$(v_fila).index(),
				nfilas_tbody=$('#'+opciones.idTabla+' tbody tr').length;

			for(r=vindex_fila+1;r<nfilas_tbody;r++){
				var r_fila=$('#'+opciones.idTabla+' tbody tr:eq('+r+')');
				var r_id=$(r_fila).attr('id');
				var vcompara=r_id.substring(0,tamano_vid);
			  	if(vcompara== vid_fila){
					if(vname=='contrae'){
						$(r_fila).fadeOut();
						$(v_img).attr('name','expande');
						$(v_img).attr('src','../utilitarios/imagenes/pluss.png');
					} else {
						$(r_fila).fadeIn();
						$(v_img).attr('name','contrae');
						$(v_img).attr('src','../utilitarios/imagenes/minus.png');
					}
			  	} else {
					break;
			   	}
			}
		});
	}
}
})(jQuery);